package com.junzhiit.nengji.shop.model;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.bainaeco.framework.base.model.BaseModel;
import com.bainaeco.framework.util.DateUtil;
import com.bainaeco.framework.util.serializer.CustomDateSerializerHMS;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

public class UserMemberCard extends BaseModel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	//用户ID
	private String userId;
	
	//会员卡ID
	private String memberCardId;
	
	//店铺ID
	private String shopId;
	
	//会员卡名称
	private String cardName;
	
	//会员卡号
	private String cardNumber;
	
	//是否包邮
	private Integer isFreeCarriage;
	
	//是否折扣
	private Integer isDiscount;
	
	//折扣率
	private Integer discount;
	
	//是否赠送优惠劵
	private Integer isPresentCoupon;
	
	//优惠劵ID
	private String couponsId;
	
	//优惠劵数量
	private Integer couponsCount;
	
	//有效期状态
	private Integer validTimeState;
	
	@DateTimeFormat(pattern = DateUtil.DATE_PATTERN_DEFAULT)
	@JsonSerialize(using = CustomDateSerializerHMS.class)
	private Date openTime;
	
	//会员卡开始时间
	@DateTimeFormat(pattern = DateUtil.DATE_PATTERN_DEFAULT)
	@JsonSerialize(using = CustomDateSerializerHMS.class)
	private Date startTime;
	
	//会员卡失效时间
	@DateTimeFormat(pattern = DateUtil.DATE_PATTERN_DEFAULT)
	@JsonSerialize(using = CustomDateSerializerHMS.class)
	private Date endTime;
	
	//会员卡有效天数
	private Integer validDays;
	
	//类型
	private Integer type;
	
	//状态
	private Integer state;
	
	//会员卡是否需要验证激活
	private Integer  activationState;
	
	//是否开启手机验证
	private Integer isPhoneVerification;
	
	//是否开启完善用户信息
	private Integer isPerfectMessage;
	
	//会员卡等级
	private Integer cardGrade;

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getMemberCardId() {
		return memberCardId;
	}

	public void setMemberCardId(String memberCardId) {
		this.memberCardId = memberCardId;
	}

	public String getShopId() {
		return shopId;
	}

	public void setShopId(String shopId) {
		this.shopId = shopId;
	}

	public String getCardName() {
		return cardName;
	}

	public void setCardName(String cardName) {
		this.cardName = cardName;
	}

	public String getCardNumber() {
		return cardNumber;
	}

	public void setCardNumber(String cardNumber) {
		this.cardNumber = cardNumber;
	}

	public Integer getIsFreeCarriage() {
		return isFreeCarriage;
	}

	public void setIsFreeCarriage(Integer isFreeCarriage) {
		this.isFreeCarriage = isFreeCarriage;
	}

	public Integer getIsDiscount() {
		return isDiscount;
	}

	public void setIsDiscount(Integer isDiscount) {
		this.isDiscount = isDiscount;
	}

	public Integer getDiscount() {
		return discount;
	}

	public void setDiscount(Integer discount) {
		this.discount = discount;
	}

	public Integer getIsPresentCoupon() {
		return isPresentCoupon;
	}

	public void setIsPresentCoupon(Integer isPresentCoupon) {
		this.isPresentCoupon = isPresentCoupon;
	}

	public String getCouponsId() {
		return couponsId;
	}

	public void setCouponsId(String couponsId) {
		this.couponsId = couponsId;
	}

	public Integer getCouponsCount() {
		return couponsCount;
	}

	public void setCouponsCount(Integer couponsCount) {
		this.couponsCount = couponsCount;
	}

	public Integer getValidTimeState() {
		return validTimeState;
	}

	public void setValidTimeState(Integer validTimeState) {
		this.validTimeState = validTimeState;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public Integer getValidDays() {
		return validDays;
	}

	public void setValidDays(Integer validDays) {
		this.validDays = validDays;
	}

	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	public Integer getState() {
		return state;
	}

	public void setState(Integer state) {
		this.state = state;
	}

	public Integer getActivationState() {
		return activationState;
	}

	public void setActivationState(Integer activationState) {
		this.activationState = activationState;
	}

	public Integer getIsPhoneVerification() {
		return isPhoneVerification;
	}

	public void setIsPhoneVerification(Integer isPhoneVerification) {
		this.isPhoneVerification = isPhoneVerification;
	}

	public Integer getIsPerfectMessage() {
		return isPerfectMessage;
	}

	public void setIsPerfectMessage(Integer isPerfectMessage) {
		this.isPerfectMessage = isPerfectMessage;
	}

	public Integer getCardGrade() {
		return cardGrade;
	}

	public void setCardGrade(Integer cardGrade) {
		this.cardGrade = cardGrade;
	}

	public Date getOpenTime() {
		return openTime;
	}

	public void setOpenTime(Date openTime) {
		this.openTime = openTime;
	}
	
}
